package org.ccunix.eshop.service;

import org.ccunix.eshop.domain.dto.CartSelectedMerVO;
import org.ccunix.eshop.domain.dto.CartVO;
import org.ccunix.eshop.domain.dto.OrdersVO;

import java.math.BigDecimal;
import java.util.List;

public interface ShopCarServiceIface {
    /**
     * 获得购物车
     * @param id
     * @return
     */
    CartVO getShopCart(Integer id);

    /**
     * 按照购物车查询商品详情列表
     * @param id
     * @return
     */
    List<CartSelectedMerVO> getCartSelectedMerListByCar(Integer id);

    /**
     * 添加购物车方法
     * @param id
     * @param merId
     * @param favourable
     * @return
     */
    boolean addShopCar(Integer id, String merId,Integer favourable);

    /**
     * 更新商品项和购物车
     * @param id
     * @param cart
     * @return
     */
    boolean updateCartSelectedMerNumber(Integer id,Integer cart);

    /**
     * 按照购物车id 和商品项查看购物车详情信息
     * @param cart
     * @param merId
     * @return
     */
    CartSelectedMerVO getCartSelectedMerByCarAndMid(Integer cart, String merId);

    /**
     * 添加购物项 商品个数是1
     * @param cart
     * @param id
     * @param calcPrice
     * @return
     */
    boolean addCartSelectedMer(Integer cart, Integer id, BigDecimal calcPrice);

    /**
     * 删除商品项按照id
     * @param id
     * @param cart
     * @return
     */
    boolean deleteCartSelectedMerById(String id,int cart);

    /**
     * 清空购物车
     * @param cart
     * @return
     */
    boolean clearCartSelectedMerByCart(Integer cart);

    /**
     * 修改商品数量
     * @param id
     * @return
     */
    boolean updateCartSelectedMerNumById(String id,int num,int cart);

    /**
     * 提交订单
     * @param cart
     * @param member
     * @return
     */
    OrdersVO submitShopCar(Integer cart, Integer member);
}
